package com.lb.shopguide.http.service;

import com.lb.baselib.http.bean.BaseResponse;

import io.reactivex.Observable;
import okhttp3.RequestBody;
import retrofit2.http.Body;
import retrofit2.http.GET;
import retrofit2.http.POST;
import retrofit2.http.Query;

public interface GuideService {

    @GET("getProductTypeListByStoreCode")
    Observable<BaseResponse> getGoodsTypesByShop(@Query("storeCode") String storeCode);

    @GET("getProductListBySearchCond")
    Observable<BaseResponse> getGoodsListByCondition(@Query("storeCode") String storeCode, @Query("typeCode") String typeCode, @Query("searchCond") String searchCond
            , @Query("page") int pageNum, @Query("rows") int pageSize);

    @GET("getProductDetailByProductCode")
    Observable<BaseResponse> getGoodsDetail(@Query("productCode") String productCode);

    @GET("searchMemberListByCond")
    Observable<BaseResponse> getMemberList(@Query("storeCode") String storeCode, @Query("searchCond") String condition);

    @GET("searchBindingMemberListByCond")
    Observable<BaseResponse> getGuideMemberList(@Query("searchCond") String condition);

    @GET("getMemFansList")
    Observable<BaseResponse> getFansList();

    @GET("getMemberCouponListByStaff")
    Observable<BaseResponse> getCouponList(@Query("memberCode") String memberCode, @Query("originType") String originType);

    @GET("getEsotericaInfo")
    Observable<BaseResponse> getMijiInfo(@Query("esoCode") String mijiCode);

    @GET("getEsotericaListByTutorCode")
    Observable<BaseResponse> getMijiListByTutorCode(@Query("tutorCode") String tutorCode, @Query("staffCode") String staffCode);

    @GET("getTutorList")
    Observable<BaseResponse> getTutorList();

    @GET("givePraiseToEsoterica")
    Observable<BaseResponse> praiseMiji(@Query("staffCode") String staffCode, @Query("esoCode") String mijiCode);

    @GET("getExpressCompanyList")
    Observable<BaseResponse> getExpressList();

    @POST("commitBuyOrder")
    Observable<BaseResponse> commitBuyOrder(@Body RequestBody body);

    @POST("confirmBuyOrderInfo")
    Observable<BaseResponse> confirmBuyOrder(@Body RequestBody body);

    @GET("getOrderDetail")
    Observable<BaseResponse> getOrderDetail(@Query("orderNum") String orderNum);

    @GET("changeBuyOrderPayMode")
    Observable<BaseResponse> changeOrderPayMode(@Query("orderNum") String orderNum, @Query("payMode") int payMode);

    @GET("getShippingInformation")
    Observable<BaseResponse> getShipInfo(@Query("orderNum") String orderNum);

    @POST("shipProducts")
    Observable<BaseResponse> commitSendGoods(@Body RequestBody body);

    @POST("cashPaymentConfirm")
    Observable<BaseResponse> payCashConfirm(@Body RequestBody body);

    @POST("closeOrder")
    Observable<BaseResponse> closeOrder(@Body RequestBody body);

    @POST("balancePayment")
    Observable<BaseResponse> payBalance(@Body RequestBody body);


    @POST("operateHomeMessage")
    Observable<BaseResponse> operateOrder(@Body RequestBody body);

    @GET("getOrderInfoListByAppUserCode")
    Observable<BaseResponse> getMemberOrderList(@Query("appUserCode") String accId, @Query("page") int pageNum, @Query("rows") int pageSize);

    @GET("getOrderList")
    Observable<BaseResponse> getOrderList(@Query("staffCode") String staffCode, @Query("orderStatus") int orderType
            , @Query("page") int pageNum, @Query("rows") int pageSize);

    @GET("refreshPayQrCode")
    Observable<BaseResponse> refreshQrCode(@Query("orderNum") String orderNum, @Query("payMode") int payMode);

    @POST("changeBuyOrderPrice")
    Observable<BaseResponse> changePrice(@Body RequestBody body);

    @POST("confirmOrderPaidByStaff")
    Observable<BaseResponse> confirmOrderPay(@Body RequestBody body);

    @GET("sendSmValidNumToShopGuide")
    Observable<BaseResponse> getVerifyNum(@Query("mobileNum") String mobileNum);

    @GET("checkShopGuideSmValidNum")
    Observable<BaseResponse> verifyPhone(@Query("mobileNum") String mobileNum, @Query("validNum") String validNum);

    @GET("getShopGuideInfo")
    Observable<BaseResponse> getStaffInfo(@Query("staffCode") String staffCode);

    @GET("getShopGuideSalesPerformance")
    Observable<BaseResponse> getPerformance(@Query("staffCode") String staffCode);

    @GET("common/getUploadToken")
    Observable<BaseResponse> getQiniuToken();

    @POST("saveShopGuideInfo")
    Observable<BaseResponse> saveUserInfo(@Body RequestBody body);

    @POST("editShopGuideReceiveAccount")
    Observable<BaseResponse> saveAlipayAccountInfo(@Body RequestBody body);

    @GET("getHomeMessageList")
    Observable<BaseResponse> getHomeMessage(@Query("staffCode") String staffCode);

    @GET("getCurrentVersion")
    Observable<BaseResponse> getAppVersion(@Query("appType") String appType, @Query("terminalType") String terminalType);

    @GET("getActivityList")
    Observable<BaseResponse> getActivity();

    @GET("getShopGuideReceiveAccount")
    Observable<BaseResponse> getAlipayAccount();

    @GET("getStaffInoutAccountDetailList")
    Observable<BaseResponse> getEarningsDetail();

    @GET("refreshYxTokenByStaff")
    Observable<BaseResponse> refreshGuideYXToken();

    //-----------------------8:30----------------------------
    @GET("staff/ts/getSalesStatistics")
    Observable<BaseResponse> getSalesStatistics();

    @GET("staff/ts/listProductZone")
    Observable<BaseResponse> listProductZone();

    @GET("staff/ts/listRecommendProduct")
    Observable<BaseResponse> listRecommendProduct(@Query("sugItemCode") int sugItemCode, @Query("zoneCode") String zoneCode);

    @GET("staff/ts/listMaterialProduct")
    Observable<BaseResponse> listMaterialProduct(@Query("sugItemCode") int sugItemCode);

    @GET("staff/ts/getAdBanner")
    Observable<BaseResponse> getAdBanner(@Query("bannerPostionSymbol") int bannerPostionSymbol);

    @GET("staff/ts/getProductDetail")
    Observable<BaseResponse> getProductDetail(@Query("productCode") String productCode);

    @GET("staff/ts/listEarnProfitStaff")
    Observable<BaseResponse> listEarnProfitStaff(@Query("productCode") String productCode);

    @GET("staff/ts/getMaterialUrl")
    Observable<BaseResponse> getMaterialUrl();

    @GET("staff/ts/listOrder")
    Observable<BaseResponse> getOrderRecList(@Query("orderStatus") int orderStatus, @Query("serviceOrderSymbol") int serviceOrderSymbol
            , @Query("page") int pageNum, @Query("rows") int pageSize);


    @GET("staff/ts/getAdLoading")
    Observable<BaseResponse> getAdLoading();

    @GET("staff/ts/getProductDetailPicPage")
    Observable<BaseResponse> getGoodsPicDetail(@Query("productCode") String productCode);

    @GET("staff/ts/getActivityProgress")
    Observable<BaseResponse> getActivityProgress();

    @GET("staff/ts/getIntervalHint")
    Observable<BaseResponse> getIntervalHint();

    @POST("staff/ts/collectData")
    Observable<BaseResponse> collectData(@Body RequestBody body);

}
